#ifndef FGE_CAMERA_HPP
#define FGE_CAMERA_HPP

#include "Math.hpp"

namespace fge
{

class Camera
{
public:
	Camera(int width, int height);

	fge::Vector2 GetDimensions() const { return dimensions; }
	void SetDimensions(const fge::Vector2 &dimensions);

	fge::Vector2 GetPosition() const { return position; }
	void SetPosition(const fge::Vector2 &position);

	float GetRotation() const { return angle; }
	void SetRotation(const float &angle);

	float GetZoom() const { return zoom; }
	void SetZoom(const float &zoom);

	fge::Vector2 GetTopLeft() const;
	fge::Vector2 GetBottomRight() const;

	fge::Matrix3 GetTransform() const;

protected:
	fge::Vector2 dimensions;
	fge::Vector2 position;
	float angle;
	float zoom;
};

}

#endif//HYPERSHIP_CAMERA_HPP
